import 'package:json_annotation/json_annotation.dart';

import 'kh_chat_room_fanstuan_model.dart';
import 'kh_chat_room_info_model.dart';
import 'kh_chat_room_list_model.dart';
import 'kh_chat_room_ranking_model.dart';
import 'kh_chat_room_user_model.dart';
import 'kh_room_check_model.dart';
import 'kh_room_new_user_welfare_model.dart';
part 'kh_chat_room_model.g.dart';

@JsonSerializable()
class KHChatRoomModel {
  /// 房间信息 预览用
  KHChatRoomListModel? roomInfoVO;
  KHChatRoomUserModel? userInfo;
  KHChatRoomInfoModel? roomInfo;
  List<KHChatRoomRankingModel>? roomCategoryRankInfoList;
  KHRoomNewUserWelfareModel? roomNewUserWelfareVO;
  KHRoomCheckModel? roomCheckBeanModel;
  String? roomCheckBean; //rtm/rtc token加密

  String? roomTokenBean;

// @property (strong, nonatomic) KHSongInfoModel *songDetailVo;

// //用户座驾
// @property (strong, nonatomic) KHSimpleDrivingInfoModel *userDrivingInfo;

// //跟随人座驾
// @property (strong, nonatomic) KHSimpleDrivingInfoModel *followDrivingInfo;

//房间座驾url
  String? drivingCenterUrl;

// //房间座驾top列表
// @property (strong, nonatomic) NSArray <KHSimpleDrivingInfoModel *>*topDrivings;

  bool? drawGameRoom;

//背景音乐入口
  bool? roomBgmFlag;
//直播暂停剩余时间
  int? livePauseDeadline;
//粉丝团信息
  KHChatRoomFanstuanModel? fanGroupInfo;

// /// 活动bannar
// @property (strong, nonatomic) NSArray<KHHomeBannerModel *> *activityBanners;
// @property (strong, nonatomic) FirstRechargeBanner *firstRechargeBanner; //聊天室内是否显示首充有礼图标

// @property (strong, nonatomic, nullable) FirstRechargeBanner  *rechargeBanner; //聊天室内是否显示充值有礼图标

//小时榜刷新时间
  // int? hourRankTime;

  /// 扩展字段，json字符串"{\"type\":1}"
  String? roomExtInfo;
//更多房间的banner
// @property (strong, nonatomic) NSArray <KHHomeBannerModel *>*recommendBannerList;
//是否通知粉丝
  String? noticeBubbleMsg;
// //个人房间品类配置
// @property (strong, nonatomic) KHC2CPersonalRoomModel *personalCategoryConfig;
// //大神带飞房间品类配置
// @property (strong, nonatomic, nullable) KHC2CPersonalRoomModel *takeFlightCategoryConfig;
// //大神带飞房间开黑组队
// @property (strong, nonatomic) KHChatRoomBlackTeamModel *blackTeamVO;
//寻人广播倒计时时间
  int? personalSeekDeadline;
//个人房间当前游戏名片
// @property (strong, nonatomic) KHChatGameCardModel *  gameCardInfo;
  ///--------------- ktv字段
//是否开启了ktv模板，调用room/enter接口后，如果ktvSongInfoVO是nil，就是NO，否则为YES；
//后续发送ktv消息时，ktvType=1（开启），和ktvType=6（关闭）时，需要同步修改这个值
// @property (strong, nonatomic, nullable) KHKTVSongInfoModel *ktvSongInfoVO;

// 房间欢迎横幅新增
// @property (nonatomic, strong) KHChatRoomWelcomeBannerModel *welcomeBanner;

// // 星光池
// @property (nonatomic, strong) KHStarlightPoolModel *starPoolVo;

// // 星光池/福气池/其他各种池
// @property (nonatomic, strong) KHStarlightPoolModel *starPoolV2Vo;

// 主持签到工具
// @property (nonatomic, strong) KHRoomHostSingInModel *hostSignInVo;

// 生日管家新增,是否是今天生日
  bool? isTodayBirthday;

  /// 房间生日会新增
// @property (nonatomic, strong) KHChatRoomBirthdayPlayGameModel *birthdayPartyVO;

//甜蜜绽放入口
  bool? showSweetBloomEntry;

  /// 预览新增试音卡逻辑优化
  int? giftId;
  String? giftShowContent;
  String? giftContentUrl;
  String? giftIcon;
  int? giftCount;
  KHRoomNewUserWelfareModel? backNewUserWelfareVO;

  KHChatRoomModel();
  factory KHChatRoomModel.fromJson(Map<String, dynamic> json) =>
      _$KHChatRoomModelFromJson(json);
  Map<String, dynamic> toJson() => _$KHChatRoomModelToJson(this);
}
